package com.wfg.controller;

import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.MDC;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author: 王富贵
 * @description:
 * @createTime: 2022年12月05日 11:40:46
 */
@Slf4j
@Data
@RestController
public class OtherLogInfController {
    @PostMapping("/")
    public void otherLog() {
        String name = "王富贵";
        // 1.使用占位符拼接字符串
        // 错误：使用加号拼接字符串
        log.info("我的名字：" + name);
        // 正确：使用 {} 占位符拼接字符串
        log.info("我的名字：{}", name);

        // 2.dbug级别日志需要判断是否开启，线上环境禁止输出dbug日志
        // 错误：直接输出了dbug日志
        log.debug("我是dbug日志");

        // 正确：判断dbug日志是否开启。通常在配置配置文件中或者配置类中控制开启按钮
        if (log.isDebugEnabled()) {
            log.debug("我是dbug日志");
        }


        // 正确示范
        if (log.isDebugEnabled()) {
            log.debug("dbug员的名字为：{}", name);
        }
    }

    @PostMapping("/MDC")
    public void testMDC() {
        // 从MDC能够获取当前请求的之前放入MDC的流水号
        String trance = MDC.get("trance");
        log.info("我从MDC来获取当前请求的流水号：{}", trance);
    }
}
